package hibari.client.model;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Text;
import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * 음악의 모델.
 * 
 * @author Jeeeyul
 * 
 */
@PersistenceCapable
public class Music implements IsSerializable {
	private boolean alive = true;
	private String composerInEnglish = "";
	private String composerInJapanese = "";
	private String compositionInEnglish = "";
	private String compositionInJapanese = "";
	private String demoUrl = "";
	private Text composerProfileInEnglish = new Text("");
	private Text composerProfileInJapanese = new Text("");
	private Text descriptionInEnglish = new Text("");
	private Text descriptionInJapanese = new Text("");
	private Long imageId;

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Long key;

	private String titleInEnglish = "";

	private String titleInJapanese = "";

	private Long weekId;

	public String getComposerInEnglish() {
		return this.composerInEnglish;
	}

	public String getComposerInJapanese() {
		return this.composerInJapanese;
	}

	public String getComposerProfileInEnglish() {
		return composerProfileInEnglish.getValue();
	}

	public String getComposerProfileInJapanese() {
		return composerProfileInJapanese.getValue();
	}

	public String getCompositionInEnglish() {
		return this.compositionInEnglish;
	}

	public String getCompositionInJapanese() {
		return this.compositionInJapanese;
	}

	public String getDemoUrl() {
		return this.demoUrl;
	}

	public String getDescriptionInEnglish() {
		return this.descriptionInEnglish.getValue();
	}

	public String getDescriptionInJapanese() {
		return this.descriptionInJapanese.getValue();
	}

	public Long getImageId() {
		return this.imageId;
	}

	public Long getKey() {
		return this.key;
	}

	public String getTitleInEnglish() {
		return this.titleInEnglish;
	}

	public String getTitleInJapanese() {
		return this.titleInJapanese;
	}

	public Long getWeekId() {
		return this.weekId;
	}

	public boolean isAlive() {
		return this.alive;
	}

	public void setAlive(boolean alive) {
		this.alive = alive;
	}

	public void setComposerInEnglish(String composerInEnglish) {
		this.composerInEnglish = composerInEnglish;
	}

	public void setComposerInJapanese(String composerInJapanese) {
		this.composerInJapanese = composerInJapanese;
	}

	public void setComposerProfileInEnglish(String composerProfileInEnglish) {
		this.composerProfileInEnglish = new Text(composerProfileInEnglish);
	}

	public void setComposerProfileInJapanese(String composerProfileInJapanese) {
		this.composerProfileInJapanese = new Text(composerProfileInJapanese);
	}

	public void setCompositionInEnglish(String compositionInEnglish) {
		this.compositionInEnglish = compositionInEnglish;
	}

	public void setCompositionInJapanese(String compositionInJapanese) {
		this.compositionInJapanese = compositionInJapanese;
	}

	public void setDemoUrl(String demoUrl) {
		this.demoUrl = demoUrl;
	}

	public void setDescriptionInEnglish(String descriptionInEnglish) {
		this.descriptionInEnglish = new Text(descriptionInEnglish);
	}

	public void setDescriptionInJapanese(String descriptionInJapanese) {
		this.descriptionInJapanese = new Text(descriptionInJapanese);
	}

	public void setImageId(Long imageId) {
		this.imageId = imageId;
	}

	public void setTitleInEnglish(String titleInEnglish) {
		this.titleInEnglish = titleInEnglish;
	}

	public void setTitleInJapanese(String titleInJapanese) {
		this.titleInJapanese = titleInJapanese;
	}

	public void setWeekId(Long weekId) {
		this.weekId = weekId;
	}
}
